#ifndef __FACTORY_H__
#define __FACTORY_H__
#include "head.h"
#include "work_que.h"

#define FILENAME "file"

// 进程池结构体
typedef struct {
    Que_t que; // 队列
    pthread_cond_t cond; // 线程池条件变量
    pthread_t *pthid; // 线程id
    short flag; // 启动标志
} Factory_t;

// 文件下载内容结构体
typedef struct 
{
    int data_len;
    char buf[1000];
} train_t;

// 初始化线程池
void factory_init(Factory_t* pf, int thread_num, int capacity);

// 启动线程池
void factory_start(Factory_t *pf, int thread_num);

// 子线程流程
void* thread_handle(void *p);

// 初始化socket
int tcp_init(int* socket_fd,char* ip,char* port);

// socket、bind、listen
int tcp_init(int* socket_fd,char* ip,char* port);

// 将文件描述符添加到epfd的监视队列
int epoll_add(int epfd,int fd);
#endif